AWS VPN은 어떤 서비스인가요?
안녕하세요 클래스메소드 컨설팅부의 이수재 입니다.
이번 달 6월 30일 오후 7시부터 Developers.IO Korea Online #3 이 개최됩니다.
발표를 위해 먼저 자료를 정리하고자 AWS의 서비스인 AWS VPN 에 대해 써보려 합니다.
(본 블로그에 사용되는 단어는 서비스의 공식 사이트에 따릅니다)
AWS VPN 이란?
AWS Virtual Private Network 솔루션은 온프레미스 네트워크, 원격 사무실, 클라이언트 디바이스 및 AWS 글로벌 네트워크 사이에서 보안 연결을 설정합니다. AWS VPN은 AWS Site-to-Site VPN 및 AWS Client VPN이라는 두 가지 서비스로 구성됩니다. 이 서비스를 함께 결합하여 네트워크 트래픽을 보호하는 탄력적인 고가용성 관리형 클라우드 VPN 솔루션을 제공합니다. - 공식 사이트
어떠한 네트워크와 네트워크 사이에 보안 연결을 설정하는 서비스입니다.
현재 VPN에서 제공하고 있는 두 서비스인 Site to Site VPN과 Client VPN 에 대하여 알아보도록 하겠습니다.
Site-to-Site VPN
AWS Classic VPN 또는 AWS VPN 이라 불리는 서비스입니다. 보통 VPN이라고 하면 이쪽을 나타냅니다.
VPN 연결이라는 용어는 많이 많이 사용되는 용어이지만 AWS에서 말하는 VPN연결은 AWS VPC 환경과 온 프레미스 환경의 VPN 연결을 말합니다.
작동 방식
구성 요소를 이해하기 위해 기본적인 방식을 보며 설명하겠습니다.
VPN의 구성 요소는 AWS 측 게이트웨이, VPN 연결, 고객 게이트웨이의 3가지로 구성됩니다.
AWS 측 게이트웨이는 VGW 와 전송(Transit) 게이트웨이를 선택할 수 있습니다.
대역폭은 1.25 Gbps를 지원하며 공개망의 특성상 최대 대역폭을 보증할 수 없습니다.
그리고 게이트웨이와 VPN 연결의 사이에는 고 가용성을 위해 두 개의 터널이 구성됩니다.
각 터널은 고유한 게이트웨이 퍼블릭 IP를 할당 받으며 터널 하나가 사용 불가능하게 되면 네트워크 트래픽은 해당 특정 Site-to-Site VPN 연결에 사용 가능한 터널로 자동으로 라우팅됩니다.
라우팅
VPN을 생성할 때
- 사용하려는 라우팅 유형 지정(정적 또는 동적)
- 서브넷용 라우팅 테이블 업데이트
를 지정하여야 합니다.
고객 게이트웨이 디바이스에서 Border Gateway Protocol(BGP)을 지원할 경우 VPN 연결을 구성할 때 동적 라우팅을 지정합니다.
고객 게이트웨이 디바이스가 BGP를 지원하지 않는 경우 정적 라우팅을 지정합니다.
라우팅 우선 순위 규칙
라우팅 테이블에 따라 VPC에서 네트워크 트래픽이 전달되는 위치가 결정됩니다. VPC 라우팅 테이블에서, 원격 네트워크에 대한 경로를 추가하고 가상 프라이빗 게이트웨이를 대상으로 지정해야 합니다. 이렇게 하면 사용자의 원격 네트워크로 향하는 VPC의 트래픽이 가상 프라이빗 게이트웨이를 통해서, 그리고 VPN 터널 중 하나를 따라 라우팅됩니다. 라우팅 테이블의 경로 전파가 자동으로 네트워크 경로를 테이블로 전파하도록 할 수 있습니다. -공식 문서
Site to Site VPN 및 DirectConnect에서 중복 경로가 존재하는 경우에는 VGW는 다음의 우선 순위에 경로를 결정합니다(공식 문서).
(Transit Gateway에서는 다른 방식으로 적용될 수 있습니다)
- LPM(Longest Prefix Match) (대상 네트워크가 트래픽과 일치하는, 가장 구체적인 라우팅)
- DirectConnect 및 Site to Site VPN은 DirectConnect가 우선
- VPC의 로컬 경로와 중첩되는 경우, 전파된 경로가 더 특정하더라도 로컬 경로가 가장 우선적으로 적용
- Site-to-Site VPN 연결 또는 AWS Direct Connect 연결에서 전파된 경로에 다른 기존 정적 경로와 동일한 대상 CIDR 블록이 있는 경우(가장 긴 접두사 일치 항목이 적용될 수 없음) 대상이 인터넷 게이트웨이, 가상 프라이빗 게이트웨이, 네트워크 인터페이스, 인스턴스 ID, VPC 피어링 연결, NAT 게이트웨이, 전송 게이트웨이 또는 게이트웨이 VPC 엔드포인트인 정적 경로가 우선적으로 적용
VGW가 라우팅 정보를 받으면, 경로 선택을 사용하여 트래픽을 라우팅하는 방법을 결정합니다.
가장 긴 접두사 일치가 적용되며 접두사가 같으면 VGW는 가장 선호도가 높은 경로부터 가장 낮은 우선 순위까지 다음과 같이 라우팅의 우선 순위를 지정합니다.
- AWS Direct Connect 연결로부터의 BGP 전파 라우팅
- Site-to-Site VPN 연결에 대해 수동으로 추가된 정적 라우팅
- Site-to-Site VPN 연결로부터의 BGP 전파 라우팅
- 각 Site-to-Site VPN 연결이 BGP를 사용하는 경우 접두사가 일치한다면, AS PATH를 비교하여 AS PATH가 가장 짧은 접두사를 선택
게이트웨이의 수정
AWS Site-to-Site VPN 연결의 대상 게이트웨이를 수정할 수 있습니다(공식 문서). 다음 마이그레이션 옵션을 사용할 수 있습니다.
- 기존 가상 프라이빗 게이트웨이를 전송 게이트웨이에 연결
- 기존 가상 프라이빗 게이트웨이를 다른 가상 프라이빗 게이트웨이에 연결
- 기존 전송 게이트웨이를 다른 전송 게이트웨이에 연결
- 기존 전송 게이트웨이를 가상 프라이빗 게이트웨이에 연결
사용 예시
요구 사항에 맞는 다양한 아키텍처가 있겠지만 공식 문서에 몇 가지 아키텍처가 나와 있으니 참고해주시기 바랍니다.
또한 Amazon VPC Connectivity Options 백서도 참고하시면 도움이 될 것이라 생각합니다.
Client VPN
AWS Client VPN은 AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스할 수 있도록 하는 관리형 클라이언트 기반 VPN 서비스입니다. Client VPN에서는 OpenVPN 기반 VPN 클라이언트를 사용하여 어떤 위치에서든 리소스에 액세스할 수 있습니다.
간단하게 설명하면 로컬 유저의 컴퓨터에서 AWS 서비스나 온프레미스 환경에 안전하게 접속할 수 있도록 하는 서비스 입니다. 서비스의 아키텍처는 다음과 같습니다.
작동 방식
Client VPN를 사용하기 위해서 우선 관리자가 환경을 구성 할 필요가 있습니다.
관리자는 VPC에 접근하기 위한 Client VPN 엔드 포인트를 생성하고 VPC와 연결합니다. 그리고 유저의 권한 및 환경의 보안 등을 설정합니다.
그리고 엔드 포인트 구성 파일을 리소스에 접근하려는 클라이언트 유저에게 제공합니다.
유저는 관리자에게 받은 설정 파일을 이용하여 VPN 엔드 포인트와 세션을 설정하여 리소스에 접근할 수 있습니다.
세션을 생성하기 위해선 인증이 필요합니다. Client VPN에서는 다음과 같은 유형의 클라이언트 인증을 제공합니다.
- Active Directory 인증(사용자 기반)
- 상호 인증(인증서 기반)
- Single sign-on(SAML 기반 연동 인증)(사용자 기반)
상세한 내용은 공식 문서를 참고해주세요.
사용 예시
Client VPN 서비스가 없다면 네트워크의 보안적인 서비스(내부 서버나 데이터 베이스)등에 접근하기 위해 배스천 호스트를 유지할 필요가 있지만 Client VPN을 사용함으로써 배스천 호스트 없이 보안적인 문제를 해결하며 실용성까지 챙길 수 있게 됩니다.
공식 문서에서 다양한 케이스를 제공하고 있습니다.
요금
Site to Site VPN은 VPN 연결을 프로비저닝하고 사용할 수 있는 VPN 연결 시간당 요금과 VPN 연결을 통해 전송된 모든 데이터에 대한 표준 AWS 데이터 전송 요금이 청구됩니다.
Client VPN는 엔드포인트별 각 활성 연결에 대해 시간당 요금과 각 클라이언트 VPN 연결에 대해 시간당 요금이 부과됩니다.
상세한 내용은 공식 페이지를 참고해주세요.
마치며
발표를 위해 Direct Connect와 비교하기 위해 VPN에 대해 간단하게 알아보았습니다.
확실히 조사를 해보니 Direct Connect와 Site to Site VPN은 비슷한 기능을 하는 것 같습니다.
다음은 이 두 서비스가 어떻게 다르고 어떻게 사용하면 좋을지 알아보도록 하겠습니다.
긴 글 읽어 주셔서 감사합니다!